Combining Forward and Backward Abstract Interpretation of Horn Clauses
نویسندگان
چکیده
Alternation of forward and backward analyses is a standard technique in abstract interpretation of programs, which is in particular useful when we wish to prove unreachability of some undesired program states. The current state-ofthe-art technique for combining forward (bottom-up, in logic programming terms) and backward (top-down) abstract interpretation of Horn clauses is query-answer transformation. It transforms a system of Horn clauses, such that standard forward analysis can propagate constraints both forward, and backward from a goal. Queryanswer transformation is effective, but has issues that we wish to address. For that, we introduce a new backward collecting semantics, which is suitable for alternating forward and backward abstract interpretation of Horn clauses. We show how the alternation can be used to prove unreachability of the goal and how every subsequent run of an analysis yields a refined model of the system. Experimentally, we observe that combining forward and backward analyses is important for analysing systems that encode questions about reachability in C programs. In particular, the combination that follows our new semantics improves the precision of our own abstract interpreter, including when compared to a forward analysis of a query-answer-transformed system.
منابع مشابه
Convex polyhedral abstractions, specialisation and property-based predicate splitting in Horn clause verification
We present an approach to constrained Horn clause (CHC) verification combining three techniques: abstract interpretation over a domain of convex polyhedra, specialisation of the constraints in CHCs using abstract interpretation of query-answer transformed clauses, and refinement by splitting predicates. The purpose of the work is to investigate how analysis and transformation tools developed fo...
متن کاملEnergy Consumption Analysis and Verification by Transformation into Horn Clauses and Abstract Interpretation∗
The static estimation of the energy consumed by program executions has applications in program optimization and verification, and is instrumental in energy-aware software development. We describe our approach for estimating such energy consumption statically (i.e., at compile-time, without running the program) in the form of functions on the input data sizes of procedures (and possibly other ha...
متن کاملNormalization of Horn clauses with disequality constraints
Horn clauses constitute a convenient, Turing-powerful tool for the specification and representation of analysis problems. However, it is not possible to express disequality conditions directly and in a natural way by means of Horn clauses. This thesis therefore proposes an extension of Horn clauses with several kinds of disequality constraints. In order to provide an automatic analysis framewor...
متن کاملA Uniform Framework for Deductive Database Derivation Strategies
A uniform framework is presented to describe the most typical strategies that are used to compute answers to Deductive Databases. The framework is based on the definition of a general Least Fixpoint operator that operates on meta rules. Each set of meta rules represents a different strategy, and this allows an easy comparison. We first consider Deductive Databases with Horn clauses and we prese...
متن کاملAn encoding of array verification problems into array-free Horn clauses
Automatically verifying safety properties of programs is hard, and it is even harder if the program acts upon arrays or other forms of maps. Many approaches exist for verifying programs operating upon Boolean and integer values (e.g. abstract interpretation, counterexample-guided abstraction refinement using interpolants), but transposing them to array properties has been fraught with difficult...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017